package com.vshop.framework.core.enums;

import java.io.Serializable;
import java.util.Objects;

public interface BaseEnum<T extends Serializable> {
    /**
     * 获取枚举类的值
     */
    T getValue();

    /**
     * 获取枚举类的说明
     *
     * @return String
     */
    String getDesc();

    /**
     * 颜色
     *
     * @return 颜色
     */
    default String getColor() {
        return null;
    }


    /**
     * 比较参数是否与枚举类的value相同
     *
     * @return boolean
     */
    default boolean equalsValue(Object value) {
        return Objects.equals(getValue(), value);
    }

    /**
     * 比较枚举类是否相同
     *
     * @return boolean
     */
    default boolean equals(BaseEnum baseEnum) {
        return Objects.equals(getValue(), baseEnum.getValue()) && Objects.equals(getDesc(), baseEnum.getDesc());
    }
}
